using System;
using LiJ.Common.Core;

namespace LiJ.Framework.Official
{
	/// <summary>
	///  应用配置相关信息
	/// </summary>
	public static class WxOfficialConfigProvider
	{
		/// <summary>
		/// 默认的配置AppKey信息
		/// </summary>
		public static AppConfig DefaultConfig
		{
			get;
			set;
		}

		/// <summary>
		///   当前模块名称
		/// </summary>
		public static string ModuleName
		{
			get;
			set;
		} = "social_center";


		/// <summary>
		/// 当 OperateMode = ByAgent 时，
		///   调用此委托 获取通过第三方代理的 公众号AccessToken 【注：是被代理的公众号token】
		///   接口位于： WxAgentAuthApi 中， 如果过期请自行调用RefreshToken方法，此方法需要返回可用的AccessToken
		///
		/// 参数为当前ApiConfig
		/// </summary>
		public static Func<AppConfig, string> AccessTokenFromAgentFunc
		{
			get;
			set;
		}

		/// <summary>
		/// 获取第三方Agent的VerifyTicket（由微信推送过来）调用的委托
		/// 参数为当前ApiConfig
		/// </summary>
		public static Func<AppConfig, string> AgentVerifyTicketGetFunc
		{
			get;
			set;
		}

		/// <summary>
		///  设置上下文配置信息
		/// </summary>
		/// <param name="config"></param>
		public static void SetContextConfig(AppConfig config)
		{
			BaseConfigProvider<AppConfig, WxBaseApi>.SetContextConfig(config);
		}
	}
}
